home *** CD-ROM | disk | FTP | other *** search
/ Sounds Terrific 2 / Sounds Terrific II (1996)(Weird Science)(Disc 1 of 2)[Amiga-PC].iso / archives / amiga / maplay1_2.lha / maplay / README < prev    next >
Text File  |  1994-06-23  |  9KB  |  187 lines

  1. /*
  2.  *  @(#) MPEG Audio Player maplay 1.2, last edit of this file: 6/23/94 13:02:49
  3.  *  @(#) Copyright (C) 1993, 1994 Tobias Bading (bading@cs.tu-berlin.de)
  4.  *  @(#) Berlin University of Technology
  5.  *
  6.  *  This program is free software; you can redistribute it and/or modify
  7.  *  it under the terms of the GNU General Public License as published by
  8.  *  the Free Software Foundation; either version 2 of the License, or
  9.  *  (at your option) any later version.
  10.  *
  11.  *  This program is distributed in the hope that it will be useful,
  12.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  *  GNU General Public License for more details.
  15.  *
  16.  *  You should have received a copy of the GNU General Public License
  17.  *  along with this program; if not, write to the Free Software
  18.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  */
  20.  
  21.  
  22. This is the README file of the MPEG Audio Player maplay, Version 1.2.
  23. Besides this file, you should now own a copy of the following files:
  24.  
  25.   ANNOUNCEMENT        the announcement for this release
  26.   INSTALL        infos about compiling and installing the program
  27.   COPYING        the GNU General Public License
  28.   Makefile        a makefile
  29.   configuration.sh    a shell script used by the makefile
  30.  
  31. and the source files
  32.  
  33.   all.h            maplay.cc        subband_layer_1.h
  34.   crc.cc        obuffer.cc        subband_layer_2.cc
  35.   crc.h            obuffer.h        subband_layer_2.h
  36.   header.cc        scalefactors.cc        synthesis_filter.cc
  37.   header.h        scalefactors.h        synthesis_filter.h
  38.   ibitstream.cc        subband.h        ulaw.cc
  39.   ibitstream.h        subband_layer_1.cc    ulaw.h
  40.  
  41. -------------------------------------------------------------------------------
  42.  
  43. 0) Introduction
  44.  
  45. MPEG is a standard created by the ISO (International Organization for
  46. Standardization) and the IEC (International Electrotechnical Commission).
  47. The full name of this standard is "ISO/IEC DIS 11172: Information
  48. Technology - Coding of moving pictures and associated audio for digital
  49. storage media ut to about 1.5 Mbit/s". As the name already states,
  50. it deals with digital video and audio. The video part of this standard has
  51. inspired many people to write decoders and a few encoders for it.
  52. Best known should be the Berkeley player. Players for the audio part on
  53. the other hand are very rare. The ones I know are the XING player for Windoze
  54. and a sample implementation of the ISO, which also includes an encoder.
  55.  
  56. The audio part of the MPEG standard specifies three layers, whereat each
  57. layer specifies its own file format. All three layers are using similar
  58. audio coding techniques, but they vary in efficiency and complexity.
  59. Layer I needs the fewest calculation time for en-/decoding a stream, layer III
  60. the most. But a layer I MPEG audio stream is bigger than a layer III stream
  61. at the same quality. This program is able to decode and play only layer I
  62. and II streams, layer III is not supported (yet?!?).
  63.  
  64. Like the MPEG video standard, the audio part also uses a lossy compression
  65. algorithm, which means that you can't get back 100% the original from a
  66. MPEG audio stream. Layer II MPEG audio streams are compressed by ratios
  67. from 1:3 up to 1:24 compared to raw PCM data, like on an audio CD.
  68. But the quality is still very (very) near to the original at ratios between
  69. 1:5 and 1:12. You'll love it... :-)
  70.  
  71. -------------------------------------------------------------------------------
  72.  
  73. 1) What does maplay?
  74.  
  75. maplay version 1.2 is the second release of my MPEG audio player/decoder.
  76. It decodes layer I and layer II MPEG audio streams and plays them
  77. using a CD-quality audio device. Currently supported devices are the
  78. dbri device of SPARC 10 computers and the audio ports of Silicon
  79. Graphics Indigo machines. Thanks to Louis P. Kruger (lpkruger@phoenix.
  80. Princeton.EDU), maplay 1.2 can also use the /dev/dsp device under Linux.
  81. Louis has tested it with the Pro Audio Spectrum 16 soundcard. Sound Blaster 16
  82. and Gravis Ultrasound cards should also work, but a bug in the dsp driver
  83. prevents stereo playback on Gravis Ultrasound cards. An amd device of a
  84. SPARC 2/IPX/... machine can be used, too, but this device is only capable of
  85. producing audio output at 8 kHz in u-law format, which sounds like transmitted
  86. through a telephone. Other audio device are not supported directly, but can be
  87. used with the "decode to stdout" option and an audio format converter.
  88. Besides it shouldn't be a problem to adapt the program to other audio devices.
  89.  
  90. The player supports all modes, which are single channel, stereo,
  91. joint stereo and dual channel, and all bitrates except free mode.
  92. The missing free mode support should not be a problem for now,
  93. because I haven't seen such a stream yet.
  94.  
  95. maplay needs approximately 46% CPU time on SPARC 10/40 machines and 50%
  96. on Indigos for realtime stereo playback of a 44.1 kHz 128 kbit/s stream.
  97. Single channel playback needs about the half CPU time. On a SPARCstation IPX,
  98. maplay needs about 43% CPU time for realtime mono playback. Stereo playback
  99. is not possible via an amd device.
  100.  
  101. Besides realtime playing of audio streams, maplay can decode streams to
  102. stdout for further conversions. The output consists of 16 bit signed PCM
  103. values. For stereo streams, the values are interleaved, which means that
  104. a value for the left channel is followed by a value for the right channel
  105. and so on. If maplay has been compiled for u-law output, the output consists
  106. of 8 bit u-law samples at a rate of 8 kHz, no matter what frequency the stream
  107. uses.
  108.  
  109. -------------------------------------------------------------------------------
  110.  
  111. 2) How to create a maplay binary?
  112.  
  113. Please read the install file for this topic.
  114.  
  115. -------------------------------------------------------------------------------
  116.  
  117. 3) How to start the program?
  118.  
  119. For a quick mono test enter "./maplay -v -l filename", where filename is the
  120. name of an audio stream, like "things.mp2". This stream has been posted along
  121. with the sources and is the beginning of Roxette's song "Things Will Never Be
  122. The Same". It is coded in joint stereo mode with 128 kbit/s, which is a
  123. compression ratio of 1:11. If the output is ok, you can test stereo playback
  124. by leaving out the -l option. If the stereo output stutters, the problem is
  125. not enough free CPU time in most cases. Stereo output is not possible when
  126. using an amd u-law device. If maplay shows error messages like
  127. "ioctl AUDIO_GETDEV on /dev/audio: ..."
  128. and maplay was compiled for u-law output, please try out the -amd option.
  129. This option forces maplay to treat /dev/audio as an amd device and may be
  130. required on SPARC clones.
  131.  
  132. To convert a MPEG audio stream into other audio formats, you can use
  133. "maplay -v -s filename | your_converter". Unfortunately, I can't be of much
  134. help for you to find such a converter. The only good converter I know is the
  135. "soundfiler" on Indigos. But if you would have an Indigo, you wouldn't need a
  136. converter...
  137.  
  138. -------------------------------------------------------------------------------
  139.  
  140. 4) Command line options
  141.  
  142. maplay [-v] [-s] [-l] [-r] [-us] [-uh] [-ul] [-amd] [-c] [-f ushort] filename
  143.  
  144. with these options:
  145.   filename    filename of a MPEG audio stream or - for stdin
  146.   -h        short help
  147.   -v        verbose mode
  148.         You will get information about the stream, like mode, bitrate,
  149.         copyright etc., if you use this option.
  150.   -s        stdout mode
  151.         This option tells the program to decode the stream to stdout.
  152.         The created output contains 16 bit signed PCM samples. If the
  153.         binary has been compiled for 8 kHz u-law format usage, the
  154.         output consists of 8 bit u-law samples at a 8 kHz rate. If the
  155.         stream is in stereo mode, the samples of both channels are
  156.         interleaved, the sample for the left channel first.
  157.   -l        maplay decodes (and plays) the left channel of stereo streams
  158.         only. This option halves the required CPU time.
  159.   -r        Same as above, but decodes the right channel only
  160.   -us, -uh    These options are available on SPARCstations only.
  161.         They specify where the audio signal should be send to:
  162.         "-us" means speaker and "-uh" headphone jack.
  163.   -ul        This option is available on machines with the dbri device
  164.         and sends the audio output to the line out jack.
  165.   -amd        This option forces maplay to treat /dev/audio as an amd
  166.         device. Use it if your SPARC clone has an amd device, but
  167.         maplay doesn't recognize it. You may also use this option on a
  168.         machine    with a dbri device, because the dbri device can also
  169.         produce    u-law output. But I suggest to recompile the program
  170.         without the ULAW define in this case to get the CD-quality
  171.         output.
  172.   -c        This option instructs the program to report filter range
  173.         violations to stderr. Sometimes PCM values calculated by
  174.         the synthesis filter exceede the 16 bit boundary and must
  175.         be mapped to these boundaries. If you can hear this, you
  176.         may use the next option.
  177.   -f ushort    maplay uses this scalefactor instead of the default value 32768
  178.         for the synthesis filter. You can reduce or eliminate range
  179.         violations with this option, but lower scalefactor values
  180.         reduce the signal-to-noise ratio, too. I can't remember when
  181.         I used this option the last time myself.
  182.  
  183.  
  184. Ok, that's all for now and this release,
  185. I hope you like it,
  186.                     Tobias Bading   (bading@cs.tu-berlin.de)
  187.